{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 0. Import Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%pip install pandas\n",
    "%pip install matplotlib"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import tensorflow.keras as keras\n",
    "from tensorflow.keras import backend as K\n",
    "from tensorflow.keras.layers import *\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from scipy.io import loadmat\n",
    "from scipy.io import savemat\n",
    "import math\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import cm\n",
    "from matplotlib.ticker import LinearLocator\n",
    "\n",
    "import time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from numpy.random import seed\n",
    "seed(0)\n",
    "tf.random.set_seed(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.  defined in a star-shaped domain\n",
    "rho_theta :exact solution; dUdx(x,y) :U_x; dUdy(x,y) :U_y; d2Udx2 :U_xx; d2Udy2 :U_yy;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def rho_theta(theta):\n",
    "    return 1+np.cos(4*theta)**2\n",
    "    \n",
    "def rho_xy(x,y):\n",
    "    return rho_theta(np.angle(x+y*1j))\n",
    "\n",
    "def x_theta(theta):\n",
    "    return rho_theta(theta)*np.cos(theta)\n",
    "\n",
    "def y_theta(theta):\n",
    "    return rho_theta(theta)*np.sin(theta)\n",
    "\n",
    "def R(x,y):\n",
    "    return np.sqrt(x**2+y**2)\n",
    "\n",
    "k=3\n",
    "def U(x,y):\n",
    "    return np.cos(x+k*x*y+k*y**2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. Initialize the Grid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "delta = 0.02\n",
    "x_domain = np.arange(-2, 2, delta)\n",
    "y_domain = np.arange(-2, 2, delta)\n",
    "x_mesh,y_mesh = np.meshgrid(x_domain, y_domain)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3. Define Physical Info."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    suppose: \n",
    "    x = x[0];\n",
    "    y = x[1];\n",
    "    uxy = x[2]; \n",
    "    dudx = x[3];\n",
    "    dudy = x[4];\n",
    "    du2dx2 = x[5];\n",
    "    du2dy2 = x[6];\n",
    "    du2dxdy = x[7];\n",
    "    laplace = x[8]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "governing_equation_components = []\n",
    "governing_equation_components.append(Lambda(lambda x: x[3]))\n",
    "governing_equation_components.append(Lambda(lambda x: x[2]*x[4]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "governing_equation_mask = R(x_mesh,y_mesh)<=rho_xy(x_mesh,y_mesh)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "fx = governing_equation_mask*(-(1+2*k*y_mesh+k**2*(1+x_mesh**2+4*x_mesh*y_mesh+5*y_mesh**2))*np.cos(x_mesh+k*x_mesh*y_mesh+k*y_mesh**2)-2*k*np.sin(x_mesh+k*x_mesh*y_mesh+k*y_mesh**2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "fx = governing_equation_mask*(\n",
    "    (-np.sin(k*y_mesh**2+k*x_mesh*y_mesh+x_mesh)*(k*y_mesh+1)) + \n",
    "    (np.cos(k*y_mesh**2+k*x_mesh*y_mesh+x_mesh))*(-np.sin(k*y_mesh**2+k*x_mesh*y_mesh+x_mesh)*(k*x_mesh+2*k*y_mesh)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "estimate_equation_form = False\n",
    "equation_component_combination = [1.0,1.0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. Define the Observations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    suppose: \n",
    "    x = x[0];\n",
    "    y = x[1];\n",
    "    uxy = x[2]; \n",
    "    dudx = x[3];\n",
    "    dudy = x[4];\n",
    "    du2dx2 = x[5];\n",
    "    du2dy2 = x[6];\n",
    "    du2dxdy = x[7];\n",
    "    laplace = x[8]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "observation_components = []\n",
    "observation_components.append(Lambda(lambda x: x[2]))\n",
    "observation_components.append(Lambda(lambda x: x[3]))\n",
    "observation_components.append(Lambda(lambda x: x[4]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    format: [x,y,combination,value]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "observation_data = []\n",
    "\n",
    "theta_list = np.linspace(0,np.pi*2,800)\n",
    "for theta in theta_list:\n",
    "    x = x_theta(theta)\n",
    "    y = y_theta(theta)\n",
    "    comb = [1,0,0]\n",
    "    v = U(x,y)\n",
    "    observation_data.append([x,y,comb,v])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5. Define PICN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gradient_x_kernal_init(shape, dtype=tf.float32):\n",
    "    return tf.constant([[[[-1.0/delta]], [[1.0/delta]]]], dtype=dtype)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gradient_x2_kernal_init(shape, dtype=tf.float32):\n",
    "    return tf.constant([[[[1.0/delta**2]], [[-2.0/delta**2]], [[1.0/delta**2]]]], dtype=dtype)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gradient_y_kernal_init(shape, dtype=tf.float32):\n",
    "    return tf.constant([[[[-1.0/delta]]], [[[1.0/delta]]]], dtype=dtype)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gradient_y2_kernal_init(shape, dtype=tf.float32):\n",
    "    return tf.constant([[[[1.0/delta**2]]], [[[-2.0/delta**2]]], [[[1.0/delta**2]]]], dtype=dtype)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gradient_xy_kernal_init(shape, dtype=tf.float32):\n",
    "    return tf.constant([[[[1.0/delta**2]], [[-1.0/delta**2]]], [[[-1.0/delta**2]], [[1.0/delta**2]]]], dtype=dtype)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def laplace_kernal_init(shape, dtype=tf.float32):\n",
    "    return tf.constant([[[[0]], [[1.0/delta**2]], [[0]]], [[[1.0/delta**2]], [[-4.0/delta**2]], [[1.0/delta**2]]], [[[0]], [[1.0/delta**2]], [[0]]]], dtype=dtype)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "inputs = [keras.layers.Input(shape=(1,1,1)),\n",
    "          keras.layers.Input(shape=(len(y_domain),len(x_domain),1)),\n",
    "          keras.layers.Input(shape=(len(y_domain),len(x_domain),1)),\n",
    "          keras.layers.Input(shape=(len(observation_data),len(observation_components)*4)),\n",
    "          keras.layers.Input(shape=(len(y_domain),len(x_domain),1))]\n",
    "\n",
    "hidden_field = keras.layers.Conv2DTranspose(filters=1, \n",
    "                                            kernel_size=[len(y_domain)+4,len(x_domain)+4], \n",
    "                                            activation='linear')(inputs[0])\n",
    "coordinates_x = inputs[1]\n",
    "coordinates_y = inputs[2]\n",
    "field = keras.layers.Conv2D(filters=1, \n",
    "                            kernel_size=3, \n",
    "                            padding='valid', \n",
    "                            activation=Lambda(lambda x: x+tf.tanh(x)))(hidden_field)\n",
    "gradient_x_field = keras.layers.Conv2D(filters=1, \n",
    "                                     kernel_size=[1,2], \n",
    "                                     padding='valid',\n",
    "                                     use_bias=False,\n",
    "                                     trainable=False,\n",
    "                                     kernel_initializer=gradient_x_kernal_init)(field)\n",
    "gradient_x2_field = keras.layers.Conv2D(filters=1, \n",
    "                                       kernel_size=[1,3], \n",
    "                                       padding='valid',\n",
    "                                       use_bias=False,\n",
    "                                       trainable=False,\n",
    "                                       kernel_initializer=gradient_x2_kernal_init)(field)\n",
    "gradient_y_field = keras.layers.Conv2D(filters=1, \n",
    "                                     kernel_size=[2,1], \n",
    "                                     padding='valid',\n",
    "                                     use_bias=False,\n",
    "                                     trainable=False,\n",
    "                                     kernel_initializer=gradient_y_kernal_init)(field)\n",
    "gradient_y2_field = keras.layers.Conv2D(filters=1, \n",
    "                                       kernel_size=[3,1], \n",
    "                                       padding='valid',\n",
    "                                       use_bias=False,\n",
    "                                       trainable=False,\n",
    "                                       kernel_initializer=gradient_y2_kernal_init)(field)\n",
    "gradient_xy_field = keras.layers.Conv2D(filters=1, \n",
    "                                       kernel_size=[2,2], \n",
    "                                       padding='valid',\n",
    "                                       use_bias=False,\n",
    "                                       trainable=False,\n",
    "                                       kernel_initializer=gradient_xy_kernal_init)(field)\n",
    "laplace_field = keras.layers.Conv2D(filters=1, \n",
    "                                       kernel_size=[3,3], \n",
    "                                       padding='valid',\n",
    "                                       use_bias=False,\n",
    "                                       trainable=False,\n",
    "                                       kernel_initializer=laplace_kernal_init)(field)\n",
    "phycial_fields = [coordinates_x,\n",
    "                  coordinates_y,\n",
    "                  field[:,1:-1,1:-1,:],\n",
    "                  gradient_x_field[:,1:-1,1:,:],\n",
    "                  gradient_y_field[:,1:,1:-1,:],\n",
    "                  gradient_x2_field[:,1:-1,:,:],\n",
    "                  gradient_y2_field[:,:,1:-1,:],\n",
    "                  gradient_xy_field[:,1:,1:,:],\n",
    "                  laplace_field]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "if estimate_equation_form==True:\n",
    "    tf_governing_equation_components = [component(phycial_fields) for component in governing_equation_components]\n",
    "    concat_equation_components = Lambda(lambda x: tf.concat(x,axis=-1))(tf_governing_equation_components)\n",
    "    governing_equation = keras.layers.Conv2D(filters=1, \n",
    "                                             kernel_size=[1,1], \n",
    "                                             padding='valid',\n",
    "                                             use_bias=False)(concat_equation_components)*inputs[4]\n",
    "else:\n",
    "    tf_weighted_governing_equation_components = [weight*component(phycial_fields) for [weight,component] in zip(equation_component_combination,governing_equation_components)]\n",
    "    concat_weighted_equation_components = Lambda(lambda x: tf.concat(x,axis=-1))(tf_weighted_governing_equation_components)\n",
    "    governing_equation = Lambda(lambda x: tf.reduce_sum(x,axis=-1,keepdims=True))(concat_weighted_equation_components)*inputs[4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "tf_observation_components = [component(phycial_fields) for component in observation_components]\n",
    "concat_observation_components = Lambda(lambda x: tf.concat(x,axis=-1))(tf_observation_components)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "left_x_position_index_list = []\n",
    "right_x_position_index_list = []\n",
    "left_x_position_weight_list = []\n",
    "right_x_position_weight_list = []\n",
    "\n",
    "bottom_y_position_index_list = []\n",
    "top_y_position_index_list = []\n",
    "bottom_y_position_weight_list = []\n",
    "top_y_position_weight_list = []\n",
    "\n",
    "\n",
    "for data in observation_data:\n",
    "    \n",
    "    left_x_position_index = int(np.floor((data[0] - x_domain[0])/delta))\n",
    "    right_x_position_index = left_x_position_index + 1\n",
    "    left_x_position_weight = 1-(data[0] - (x_domain[0]+delta*left_x_position_index))/delta\n",
    "    right_x_position_weight = 1-left_x_position_weight\n",
    "    \n",
    "    bottom_y_position_index = int(np.floor((data[1] - y_domain[0])/delta))\n",
    "    top_y_position_index = bottom_y_position_index + 1\n",
    "    bottom_y_position_weight = 1-(data[1] - (y_domain[0]+delta*bottom_y_position_index))/delta\n",
    "    top_y_position_weight = 1-bottom_y_position_weight\n",
    "    \n",
    "    if data[0] <= x_domain[0] + 1e-8:\n",
    "        left_x_position_index = 0\n",
    "        right_x_position_index = 1\n",
    "        left_x_position_weight = 1\n",
    "        right_x_position_weight = 0\n",
    "    if data[0] >= x_domain[-1] - 1e-8:\n",
    "        left_x_position_index = len(x_domain)-2\n",
    "        right_x_position_index = len(x_domain)-1\n",
    "        left_x_position_weight = 0\n",
    "        right_x_position_weight = 1\n",
    "    if data[1] <= y_domain[0] + 1e-8:\n",
    "        bottom_y_position_index = 0\n",
    "        top_y_position_index = 1\n",
    "        bottom_y_position_weight = 1\n",
    "        top_y_position_weight = 0\n",
    "    if data[1] >= y_domain[-1] - 1e-8:\n",
    "        bottom_y_position_index = len(y_domain)-2\n",
    "        top_y_position_index = len(y_domain)-1\n",
    "        bottom_y_position_weight = 0\n",
    "        top_y_position_weight = 1\n",
    "    \n",
    "    left_x_position_index_list.append(left_x_position_index)\n",
    "    right_x_position_index_list.append(right_x_position_index)\n",
    "    left_x_position_weight_list.append(left_x_position_weight)\n",
    "    right_x_position_weight_list.append(right_x_position_weight)\n",
    "\n",
    "    bottom_y_position_index_list.append(bottom_y_position_index)\n",
    "    top_y_position_index_list.append(top_y_position_index)\n",
    "    bottom_y_position_weight_list.append(bottom_y_position_weight)\n",
    "    top_y_position_weight_list.append(top_y_position_weight)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "left_bottom_indices = tf.constant([[0,y,x] for x,y in zip(left_x_position_index_list,bottom_y_position_index_list)])\n",
    "left_top_indices = tf.constant([[0,y,x] for x,y in zip(left_x_position_index_list,top_y_position_index_list)])\n",
    "right_bottom_indices = tf.constant([[0,y,x] for x,y in zip(right_x_position_index_list,bottom_y_position_index_list)])\n",
    "right_top_indices = tf.constant([[0,y,x] for x,y in zip(right_x_position_index_list,top_y_position_index_list)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "observation_data_left_bottom_part = Lambda(lambda x: tf.gather_nd(x,left_bottom_indices))(concat_observation_components)\n",
    "observation_data_left_top_part = Lambda(lambda x: tf.gather_nd(x,left_top_indices))(concat_observation_components)\n",
    "observation_data_right_bottom_part = Lambda(lambda x: tf.gather_nd(x,right_bottom_indices))(concat_observation_components)\n",
    "observation_data_right_top_part = Lambda(lambda x: tf.gather_nd(x,right_top_indices))(concat_observation_components)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "observation_data_four_part = Lambda(lambda x: tf.expand_dims(tf.concat(x,axis=-1),axis=0))([observation_data_left_bottom_part,observation_data_left_top_part,observation_data_right_bottom_part,observation_data_right_top_part])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "observation_data_interpolation_weights = np.expand_dims(\n",
    "np.asarray([np.concatenate([(np.asarray([observation_data[i][2][j] for j in range(len(observation_components))]))*left_x_position_weight_list[i]*bottom_y_position_weight_list[i],\n",
    " (np.asarray([observation_data[i][2][j] for j in range(len(observation_components))]))*left_x_position_weight_list[i]*top_y_position_weight_list[i],\n",
    " (np.asarray([observation_data[i][2][j] for j in range(len(observation_components))]))*right_x_position_weight_list[i]*bottom_y_position_weight_list[i],\n",
    " (np.asarray([observation_data[i][2][j] for j in range(len(observation_components))]))*right_x_position_weight_list[i]*top_y_position_weight_list[i]],axis=-1) for i in range(len(observation_data))]),\n",
    "    axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "observations = Lambda(lambda x: tf.reduce_sum(x[0]*x[1],axis=-1))([inputs[3][0,:,:],observation_data_four_part])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "pde_model = keras.Model(inputs=inputs[:3], outputs=phycial_fields)\n",
    "pde_model_train = keras.Model(inputs=inputs, outputs=[governing_equation,observations])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"model\"\n",
      "__________________________________________________________________________________________________\n",
      " Layer (type)                Output Shape                 Param #   Connected to                  \n",
      "==================================================================================================\n",
      " input_1 (InputLayer)        [(None, 1, 1, 1)]            0         []                            \n",
      "                                                                                                  \n",
      " conv2d_transpose (Conv2DTr  (None, 204, 204, 1)          41617     ['input_1[0][0]']             \n",
      " anspose)                                                                                         \n",
      "                                                                                                  \n",
      " conv2d (Conv2D)             (None, 202, 202, 1)          10        ['conv2d_transpose[0][0]']    \n",
      "                                                                                                  \n",
      " conv2d_1 (Conv2D)           (None, 202, 201, 1)          2         ['conv2d[0][0]']              \n",
      "                                                                                                  \n",
      " conv2d_3 (Conv2D)           (None, 201, 202, 1)          2         ['conv2d[0][0]']              \n",
      "                                                                                                  \n",
      " conv2d_2 (Conv2D)           (None, 202, 200, 1)          3         ['conv2d[0][0]']              \n",
      "                                                                                                  \n",
      " conv2d_4 (Conv2D)           (None, 200, 202, 1)          3         ['conv2d[0][0]']              \n",
      "                                                                                                  \n",
      " conv2d_5 (Conv2D)           (None, 201, 201, 1)          4         ['conv2d[0][0]']              \n",
      "                                                                                                  \n",
      " input_2 (InputLayer)        [(None, 200, 200, 1)]        0         []                            \n",
      "                                                                                                  \n",
      " input_3 (InputLayer)        [(None, 200, 200, 1)]        0         []                            \n",
      "                                                                                                  \n",
      " tf.__operators__.getitem (  (None, 200, 200, 1)          0         ['conv2d[0][0]']              \n",
      " SlicingOpLambda)                                                                                 \n",
      "                                                                                                  \n",
      " tf.__operators__.getitem_1  (None, 200, 200, 1)          0         ['conv2d_1[0][0]']            \n",
      "  (SlicingOpLambda)                                                                               \n",
      "                                                                                                  \n",
      " tf.__operators__.getitem_2  (None, 200, 200, 1)          0         ['conv2d_3[0][0]']            \n",
      "  (SlicingOpLambda)                                                                               \n",
      "                                                                                                  \n",
      " tf.__operators__.getitem_3  (None, 200, 200, 1)          0         ['conv2d_2[0][0]']            \n",
      "  (SlicingOpLambda)                                                                               \n",
      "                                                                                                  \n",
      " tf.__operators__.getitem_4  (None, 200, 200, 1)          0         ['conv2d_4[0][0]']            \n",
      "  (SlicingOpLambda)                                                                               \n",
      "                                                                                                  \n",
      " tf.__operators__.getitem_5  (None, 200, 200, 1)          0         ['conv2d_5[0][0]']            \n",
      "  (SlicingOpLambda)                                                                               \n",
      "                                                                                                  \n",
      " conv2d_6 (Conv2D)           (None, 200, 200, 1)          9         ['conv2d[0][0]']              \n",
      "                                                                                                  \n",
      "==================================================================================================\n",
      "Total params: 41650 (162.70 KB)\n",
      "Trainable params: 41627 (162.61 KB)\n",
      "Non-trainable params: 23 (92.00 Byte)\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "def model_print_functoin(s):\n",
    "    with open('model_summary.txt','a') as f:\n",
    "        print(s, file=f)\n",
    "\n",
    "pde_model.summary(print_fn=model_print_functoin)\n",
    "pde_model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 6. Prepare the Training Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 1, 1, 1)\n"
     ]
    }
   ],
   "source": [
    "unit_constant = np.asarray([[[[1.0]]]],dtype=np.float32)\n",
    "training_input_data_0 = unit_constant\n",
    "print(training_input_data_0.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 200, 200, 1)\n"
     ]
    }
   ],
   "source": [
    "training_input_data_1 = np.expand_dims(x_mesh.astype(np.float32),axis=[0,-1])\n",
    "print(training_input_data_1.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 200, 200, 1)\n"
     ]
    }
   ],
   "source": [
    "training_input_data_2 = np.expand_dims(y_mesh.astype(np.float32),axis=[0,-1])\n",
    "print(training_input_data_2.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 800, 12)\n"
     ]
    }
   ],
   "source": [
    "training_input_data_3 = observation_data_interpolation_weights.astype(np.float32)\n",
    "print(training_input_data_3.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 200, 200, 1)\n"
     ]
    }
   ],
   "source": [
    "training_input_data_4 = np.expand_dims(governing_equation_mask.astype(np.float32),axis=[0,-1])\n",
    "print(training_input_data_2.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 200, 200, 1)\n"
     ]
    }
   ],
   "source": [
    "training_label_data_0 = np.expand_dims(fx.astype(np.float32),axis=[0,-1])\n",
    "print(training_label_data_0.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 800)\n"
     ]
    }
   ],
   "source": [
    "training_label_data_1 = np.expand_dims(np.asarray([data[3] for data in observation_data]),axis=[0])\n",
    "print(training_label_data_1.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "training_input_data = [training_input_data_0,training_input_data_1,training_input_data_2,training_input_data_3,training_input_data_4]\n",
    "training_label_data = [training_label_data_0,training_label_data_1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 7. Train the Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['loss', 'tf.math.multiply_2_loss', 'lambda_14_loss']\n"
     ]
    }
   ],
   "source": [
    "pde_model_train.compile(optimizer=keras.optimizers.Adam(), loss=\"mse\")\n",
    "pde_model_train.save_weights('picn_initial_weights.h5')\n",
    "temp_history = pde_model_train.fit(x=training_input_data, y=training_label_data, epochs=1, verbose=0)\n",
    "history_keys = []\n",
    "for key in temp_history.history.keys():\n",
    "    history_keys.append(key)\n",
    "print(history_keys)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "def record_predictions():\n",
    "    [_, _, uxy, dudx, dudy, d2udx2, d2udy2, d2udxdy, laplace] = pde_model.predict(training_input_data[:3])\n",
    "    uxy_list.append(uxy[:,:,:,0])\n",
    "    dudx_list.append(dudx[:,:,:,0])\n",
    "    dudy_list.append(dudy[:,:,:,0])\n",
    "    d2udx2_list.append(d2udx2[:,:,:,0])\n",
    "    d2udy2_list.append(d2udy2[:,:,:,0])\n",
    "    d2udxdy_list.append(d2udxdy[:,:,:,0])\n",
    "    laplace_list.append(laplace[:,:,:,0])\n",
    "\n",
    "class Per_X_Epoch_Record(tf.keras.callbacks.Callback):\n",
    "    def __init__(self, record_interval, verbose=1):\n",
    "        super(tf.keras.callbacks.Callback, self).__init__()\n",
    "        self.total_loss = history_keys[0]\n",
    "        self.domain_loss = history_keys[1]\n",
    "        self.bdc_loss = history_keys[2]\n",
    "        self.previous_total_loss = 9999999\n",
    "        self.record_interval = record_interval\n",
    "        self.verbose = verbose\n",
    "\n",
    "    def on_epoch_end(self, epoch, logs={}):\n",
    "        \n",
    "        if epoch%self.record_interval == 0:\n",
    "            \n",
    "            current_total_loss = logs.get(self.total_loss)\n",
    "            current_domain_loss = logs.get(self.domain_loss)\n",
    "            current_bdc_loss = logs.get(self.bdc_loss)\n",
    "            \n",
    "            epoch_number_list.append(epoch)\n",
    "            total_loss_list.append(current_total_loss)\n",
    "            domain_loss_list.append(current_domain_loss)\n",
    "            boundary_loss_list.append(current_bdc_loss)\n",
    "        \n",
    "            if current_total_loss < self.previous_total_loss:\n",
    "                self.previous_total_loss = current_total_loss\n",
    "                pde_model_train.save_weights('picn_best_weights.h5')\n",
    "            \n",
    "            if self.verbose > 0:\n",
    "                print(\"epoch: {:10.5f} | total_loss: {:10.5f} | domain_loss: {:10.5f} | bdc_loss: {:10.5f}\".format(epoch,current_total_loss,current_domain_loss,current_bdc_loss))\n",
    "        \n",
    "            # evaluate the errors in f-domain\n",
    "            record_predictions()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "if os.path.exists(\"demofile.txt\"):\n",
    "  os.remove(\"demofile.txt\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "callbacks = [\n",
    "    Per_X_Epoch_Record(record_interval=100,verbose=1),\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch:    0.00000 | total_loss:    0.55090 | domain_loss:    3.93976 | bdc_loss:    0.51667\n",
      "1/1 [==============================] - 0s 67ms/step\n",
      "epoch:  100.00000 | total_loss:    0.27555 | domain_loss:    4.68856 | bdc_loss:    0.23098\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch:  200.00000 | total_loss:    0.06101 | domain_loss:    2.98200 | bdc_loss:    0.03151\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch:  300.00000 | total_loss:    0.01376 | domain_loss:    1.06871 | bdc_loss:    0.00311\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch:  400.00000 | total_loss:    0.00690 | domain_loss:    0.59837 | bdc_loss:    0.00092\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch:  500.00000 | total_loss:    0.00451 | domain_loss:    0.40695 | bdc_loss:    0.00045\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch:  600.00000 | total_loss:    0.00323 | domain_loss:    0.29649 | bdc_loss:    0.00027\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch:  700.00000 | total_loss:    0.00241 | domain_loss:    0.22315 | bdc_loss:    0.00018\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch:  800.00000 | total_loss:    0.00189 | domain_loss:    0.17658 | bdc_loss:    0.00012\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch:  900.00000 | total_loss:    0.00161 | domain_loss:    0.15172 | bdc_loss:    0.00010\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 1000.00000 | total_loss:    0.00136 | domain_loss:    0.12826 | bdc_loss:    0.00008\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 1100.00000 | total_loss:    0.00110 | domain_loss:    0.10390 | bdc_loss:    0.00006\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 1200.00000 | total_loss:    0.00094 | domain_loss:    0.08879 | bdc_loss:    0.00005\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 1300.00000 | total_loss:    0.00076 | domain_loss:    0.07171 | bdc_loss:    0.00004\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 1400.00000 | total_loss:    0.00064 | domain_loss:    0.06044 | bdc_loss:    0.00004\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 1500.00000 | total_loss:    0.00054 | domain_loss:    0.05116 | bdc_loss:    0.00003\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 1600.00000 | total_loss:    0.00046 | domain_loss:    0.04361 | bdc_loss:    0.00003\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 1700.00000 | total_loss:    0.00040 | domain_loss:    0.03774 | bdc_loss:    0.00002\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 1800.00000 | total_loss:    0.00035 | domain_loss:    0.03329 | bdc_loss:    0.00002\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 1900.00000 | total_loss:    0.00032 | domain_loss:    0.02984 | bdc_loss:    0.00002\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 2000.00000 | total_loss:    0.00029 | domain_loss:    0.02721 | bdc_loss:    0.00002\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 2100.00000 | total_loss:    0.00027 | domain_loss:    0.02518 | bdc_loss:    0.00002\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 2200.00000 | total_loss:    0.00025 | domain_loss:    0.02358 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 2300.00000 | total_loss:    0.00024 | domain_loss:    0.02223 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 2400.00000 | total_loss:    0.00022 | domain_loss:    0.02111 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 2500.00000 | total_loss:    0.00021 | domain_loss:    0.02025 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 2600.00000 | total_loss:    0.00021 | domain_loss:    0.01944 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 2700.00000 | total_loss:    0.00020 | domain_loss:    0.01880 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 2800.00000 | total_loss:    0.00019 | domain_loss:    0.01816 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 2900.00000 | total_loss:    0.00018 | domain_loss:    0.01751 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 3000.00000 | total_loss:    0.00018 | domain_loss:    0.01688 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 3100.00000 | total_loss:    0.00017 | domain_loss:    0.01628 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 3200.00000 | total_loss:    0.00017 | domain_loss:    0.01575 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 3300.00000 | total_loss:    0.00016 | domain_loss:    0.01522 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 10ms/step\n",
      "epoch: 3400.00000 | total_loss:    0.00016 | domain_loss:    0.01480 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 3500.00000 | total_loss:    0.00015 | domain_loss:    0.01440 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 3600.00000 | total_loss:    0.00015 | domain_loss:    0.01413 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 3700.00000 | total_loss:    0.00015 | domain_loss:    0.01387 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 3800.00000 | total_loss:    0.00014 | domain_loss:    0.01367 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 3900.00000 | total_loss:    0.00014 | domain_loss:    0.01354 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 4000.00000 | total_loss:    0.00014 | domain_loss:    0.01325 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 4100.00000 | total_loss:    0.00013 | domain_loss:    0.01257 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 4200.00000 | total_loss:    0.00013 | domain_loss:    0.01236 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 4300.00000 | total_loss:    0.00013 | domain_loss:    0.01223 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 4400.00000 | total_loss:    0.00013 | domain_loss:    0.01213 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 4500.00000 | total_loss:    0.00013 | domain_loss:    0.01208 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 4600.00000 | total_loss:    0.00013 | domain_loss:    0.01194 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 4700.00000 | total_loss:    0.00012 | domain_loss:    0.01184 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 4800.00000 | total_loss:    0.00012 | domain_loss:    0.01177 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 4900.00000 | total_loss:    0.00012 | domain_loss:    0.01172 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 5000.00000 | total_loss:    0.00012 | domain_loss:    0.01164 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 5100.00000 | total_loss:    0.00012 | domain_loss:    0.01168 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 5200.00000 | total_loss:    0.00012 | domain_loss:    0.01156 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 5300.00000 | total_loss:    0.00012 | domain_loss:    0.01147 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 5400.00000 | total_loss:    0.00012 | domain_loss:    0.01144 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 5500.00000 | total_loss:    0.00012 | domain_loss:    0.01133 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 5600.00000 | total_loss:    0.00012 | domain_loss:    0.01132 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 5700.00000 | total_loss:    0.00012 | domain_loss:    0.01123 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 5800.00000 | total_loss:    0.00012 | domain_loss:    0.01118 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 5900.00000 | total_loss:    0.00012 | domain_loss:    0.01115 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 6000.00000 | total_loss:    0.00012 | domain_loss:    0.01110 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 6100.00000 | total_loss:    0.00012 | domain_loss:    0.01106 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 6200.00000 | total_loss:    0.00012 | domain_loss:    0.01110 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 6300.00000 | total_loss:    0.00011 | domain_loss:    0.01092 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 6400.00000 | total_loss:    0.00011 | domain_loss:    0.01088 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 6500.00000 | total_loss:    0.00011 | domain_loss:    0.01089 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 6600.00000 | total_loss:    0.00011 | domain_loss:    0.01084 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 6700.00000 | total_loss:    0.00011 | domain_loss:    0.01076 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 6800.00000 | total_loss:    0.00011 | domain_loss:    0.01071 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 6900.00000 | total_loss:    0.00011 | domain_loss:    0.01069 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 7000.00000 | total_loss:    0.00011 | domain_loss:    0.01069 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 7100.00000 | total_loss:    0.00011 | domain_loss:    0.01058 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 13ms/step\n",
      "epoch: 7200.00000 | total_loss:    0.00011 | domain_loss:    0.01057 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 7300.00000 | total_loss:    0.00011 | domain_loss:    0.01055 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 7400.00000 | total_loss:    0.00011 | domain_loss:    0.01053 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 7500.00000 | total_loss:    0.00011 | domain_loss:    0.01052 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 7600.00000 | total_loss:    0.00011 | domain_loss:    0.01042 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 7700.00000 | total_loss:    0.00011 | domain_loss:    0.01042 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 7800.00000 | total_loss:    0.00011 | domain_loss:    0.01032 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 7900.00000 | total_loss:    0.00011 | domain_loss:    0.01032 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 8000.00000 | total_loss:    0.00011 | domain_loss:    0.01027 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 8100.00000 | total_loss:    0.00011 | domain_loss:    0.01022 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 8200.00000 | total_loss:    0.00011 | domain_loss:    0.01025 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 8300.00000 | total_loss:    0.00011 | domain_loss:    0.01022 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 8400.00000 | total_loss:    0.00011 | domain_loss:    0.01019 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 8500.00000 | total_loss:    0.00011 | domain_loss:    0.01014 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 8600.00000 | total_loss:    0.00011 | domain_loss:    0.01018 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 8700.00000 | total_loss:    0.00011 | domain_loss:    0.01008 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 13ms/step\n",
      "epoch: 8800.00000 | total_loss:    0.00011 | domain_loss:    0.01006 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "epoch: 8900.00000 | total_loss:    0.00011 | domain_loss:    0.01002 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9000.00000 | total_loss:    0.00010 | domain_loss:    0.00999 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9100.00000 | total_loss:    0.00010 | domain_loss:    0.00997 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9200.00000 | total_loss:    0.00010 | domain_loss:    0.01000 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9300.00000 | total_loss:    0.00010 | domain_loss:    0.00993 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9400.00000 | total_loss:    0.00010 | domain_loss:    0.00992 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9500.00000 | total_loss:    0.00010 | domain_loss:    0.00992 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9600.00000 | total_loss:    0.00010 | domain_loss:    0.00991 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9700.00000 | total_loss:    0.00010 | domain_loss:    0.00986 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 13ms/step\n",
      "epoch: 9800.00000 | total_loss:    0.00010 | domain_loss:    0.00987 | bdc_loss:    0.00001\n",
      "1/1 [==============================] - 0s 12ms/step\n",
      "epoch: 9900.00000 | total_loss:    0.00010 | domain_loss:    0.00980 | bdc_loss:    0.00000\n",
      "1/1 [==============================] - 0s 11ms/step\n",
      "Training time cost:   52.19859 seconds\n"
     ]
    }
   ],
   "source": [
    "epoch_number_list = []\n",
    "total_loss_list = []\n",
    "domain_loss_list = []\n",
    "boundary_loss_list = []\n",
    "uxy_list = []\n",
    "dudx_list = []\n",
    "dudy_list = []\n",
    "d2udx2_list = []\n",
    "d2udy2_list = []\n",
    "d2udxdy_list = []\n",
    "laplace_list = []\n",
    "pde_model_train.load_weights('picn_initial_weights.h5')\n",
    "pde_model_train.compile(optimizer=keras.optimizers.Adam(learning_rate=0.001), loss=\"mse\", loss_weights = [0.01, 0.99])\n",
    "# Record the training time cost\n",
    "start = time.time()\n",
    "\n",
    "# Training\n",
    "pde_model_train.fit(x=training_input_data, \n",
    "                    y=training_label_data, \n",
    "                    epochs=10000, verbose=0,\n",
    "                    callbacks=callbacks)\n",
    "\n",
    "# Record the training time cost\n",
    "end = time.time()\n",
    "print(\"Training time cost: {:10.5f} seconds\".format(end - start))\n",
    "time_costs_text_file = open(\"time_costs.txt\", \"w\")\n",
    "time_costs_text_file.write(\"Training time cost: {:10.5f} seconds\".format(end - start))\n",
    "time_costs_text_file.close()\n",
    "\n",
    "# Load the best weights\n",
    "pde_model_train.load_weights('picn_best_weights.h5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1200x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df=pd.DataFrame({'epoch': epoch_number_list, \n",
    "                 'total_loss': total_loss_list, \n",
    "                 'governing_loss': domain_loss_list, \n",
    "                 'boundary_loss': boundary_loss_list})\n",
    "\n",
    "plt.figure(figsize=(12, 4))\n",
    "plt.plot( 'epoch', 'total_loss', data=df, marker='o', markerfacecolor='red', markersize=2, color='skyblue', linewidth=3)\n",
    "plt.plot( 'epoch', 'governing_loss', data=df, marker='', color='green', linewidth=2, linestyle='dashed')\n",
    "plt.plot( 'epoch', 'boundary_loss', data=df, marker='', color='blue', linewidth=2, linestyle='dashed')\n",
    "plt.legend()\n",
    "#plt.xscale('log')\n",
    "plt.yscale('log')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1/1 [==============================] - 0s 12ms/step\n"
     ]
    }
   ],
   "source": [
    "[x_m, y_m, uxy, dudx, dudy, d2udx2, d2udy2, d2udxdy, laplace] = pde_model.predict(training_input_data[:3])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'y')"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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PHiw4bgXXngB99xzD9577z34/X5ccMEFePrpp12PjZqLFxnTz19lyFaSLTOV7DFkOnVENCNKLcPTBy0eQbbd2Khx0ze41Te6NTe5TTnGoqm5vrGtU1NbfTNbfSNb/TlWDWzNS3vrG9faNSu3a1br1KTWrjktkNqY1q4RuYpVE1q7BrTdaTrbISv7qels72Ds2LGor6/H/Pnz8dZbb2Hv3r1YsGABZs2apa1qdPToUYwZMwZvvfUWAOXmc++992L//v04cuQInn32WVx77bX4zne+g7POOgsAMH36dHz55Ze46aabcPDgQXzwwQeYO3cuOI7DlClTACglFpdccgl++tOfYubMmWhubkZzczNaWloK88soctyYTunQ67x5U3Gr+dnqfjrNN+u+0+IVmeg+KzKGpuWZ6r6T9ts1JwfSNyV3swhFJvoPpL8HOD1P2t87IO0nVObum+tYSueEYlIlV7ajJuOFozdnGc3dN5cajvciZs+ejQ8++AA7duzA888/j1deecVxAqCrqwsXXnghGIbBrl27sHfvXgiCgEsvvdQwofDkk0/immuuwdy5c3HgwAHs3bsXV199dUZjo4ynImJy/RrwSDWb1FI6db/5ZzNq5pPs48FGRW1WWDWl7GbM9e9rnjF3W65nNUtuRj9L7naG3G523G5mHNAtQW4zWuMVZjYjrs+EssuCspoJzyYDyqr8ojsz3yrU90OBleLwMM4rWMSl/K1wsXXrVixYsABTp07VZj7Wr1+vPS+KIg4dOqStXOT1evHyyy/jwQcfRFdXF4YNG4aZM2fijjvu0M4ZM2YMnnvuOdx9992oq6sDy7I455xzsH37dm1mfMuWLQiFQli9ejVWr16tnXvBBRdgz549ebteIpWp312t9XUy45ThlAnpdD+zLCln3c8kMypdaXYmum+XCWubDZVFFqzd1zK32g8Y9b87/f+y1X/SfoV02p9P3QdI+4ncrD5mLM8TcTISTOzPTdaT3lBRy/sII73ZdNJDPZ8Kz8GDB7F9+3bs27dPW9V0w4YNuPjii7F27Vpt4kHP3r17ceTIEbz77rta9u2WLVswYMAA7Nq1C9OmTYMkSbjllltw//33Y968edq5X/va1zIaHxlPRYK6dLZYyqWYPB5B1vYDRoPILiNK3asPJdTsp7hNGV8mgYk6PjZqdU5mZpTboMQuILG8lgyD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",
      "text/plain": [
       "<Figure size 1400x300 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "z_mesh = U(x_mesh,y_mesh)\n",
    "z_mesh[~governing_equation_mask] = np.nan\n",
    "\n",
    "fig, axs = plt.subplots(1,3,constrained_layout=False, figsize=(14, 3))\n",
    "#\n",
    "ax = axs.ravel()[0]\n",
    "temp = uxy[0,:,:,0]\n",
    "temp[~governing_equation_mask]=np.nan\n",
    "cs = ax.contourf(x_domain, y_domain, uxy[0,:,:,0],np.linspace(-1.5, 1.5, 50))\n",
    "fig.colorbar(cs, ax=ax, shrink=0.9)\n",
    "ax.set_xlabel('x')\n",
    "ax.set_ylabel('y')\n",
    "#\n",
    "ax = axs.ravel()[1]\n",
    "cs = ax.contourf(x_domain, y_domain, z_mesh,np.linspace(-1.5, 1.5, 50))\n",
    "fig.colorbar(cs, ax=ax, shrink=0.9)\n",
    "ax.set_xlabel('x')\n",
    "ax.set_ylabel('y')\n",
    "#\n",
    "ax = axs.ravel()[2]\n",
    "cs = ax.contourf(x_domain, y_domain, uxy[0,:,:,0]-z_mesh,50)\n",
    "fig.colorbar(cs, ax=ax, shrink=0.9)\n",
    "ax.set_xlabel('x')\n",
    "ax.set_ylabel('y')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.029018251532332343"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(uxy[0,:,:,0]-z_mesh)[governing_equation_mask].mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 8. Save the Process Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "picn_process_data = {'x_domain':x_domain,\n",
    "                     'y_domain':y_domain,\n",
    "                     'epoch_number_list':np.asarray(epoch_number_list),\n",
    "                     'total_loss_list':np.asarray(total_loss_list),\n",
    "                     'domain_loss_list':np.asarray(domain_loss_list),\n",
    "                     'boundary_loss_list':np.asarray(boundary_loss_list),\n",
    "                     'uxy_list':np.concatenate(uxy_list,axis=0),\n",
    "                     'dudx_list':np.concatenate(dudx_list,axis=0),\n",
    "                     'dudy_list':np.concatenate(dudy_list,axis=0),\n",
    "                     'd2udx2_list':np.concatenate(d2udx2_list,axis=0),\n",
    "                     'd2udy2_list':np.concatenate(d2udy2_list,axis=0),\n",
    "                     'd2udxdy_list':np.concatenate(d2udxdy_list,axis=0),\n",
    "                     'laplace_list':np.concatenate(laplace_list,axis=0)}\n",
    "savemat('picn_process_data.mat', picn_process_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
